import os
import argparse

class CommandParser():
    def __init__(self):
        self.parser = argparse.ArgumentParser()
        self.args_dict = {}
        init_arguement()
        command_parser()
    def init_arguement(self):
        self.parser.add_argument('--device', nargs='+', type=int, default=0)
        self.parser.add_argument('--model_path', type=str, default="../model/yolo_v4.om")
        self.parser.add_argument('--batch', type=int, default=1)
        self.parser.add_argument('--model_input_width', type=int, default=416)
        self.parser.add_argument('--model_input_height', type=int, default=416)
        self.parser.add_argument('--conf_path', type=str, default="../conf/cfg.ini")

    def command_parser(self):
        self.args = self.parser.parse_args()
        print("Using device id:{}\nmodel path:{}\nmodel:{} {} {}\nconf path:{}\n"
          .format(args.device, args.model_path, 
                  args.batch, args.model_input_width, args.model_input_height,
                  args.conf_path))
        self.args_dict.update({'device': args.device})
        self.args_dict.update({'model_path': args.model_path})
        self.args_dict.update({'batch': args.batch})
        self.args_dict.update({'model_input_width': args.model_input_width})
        self.args_dict.update({'model_input_height': args.model_input_height})
        self.args_dict.update({'conf_path': args.conf_path})
        return self.args_dict
